package com.ruoyi.workbench.service;

import com.ruoyi.workbench.domain.PhysicalUnitImportTemplate;
import com.ruoyi.workbench.domain.WbCountyUnit;
import com.ruoyi.workbench.domain.WbPhysicalUnit;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author hanjiafeng
 * @date 2021年3月6日 10点50分
 */
public interface IWbPhysicalUnitService {

    /**
     * 插入WbPhysicalUnit
     *
     * @param wbPhysicalUnit wbPhysicalUnit
     * @return 插入标志
     */
    int insertWbPhysicalUnit(WbPhysicalUnit wbPhysicalUnit);

    /**
     * 查询
     *
     * @param wbPhysicalUnit wbPhysicalUnit
     * @return 结果集
     */
    List<WbPhysicalUnit> selectWbPhysicalUnit(WbPhysicalUnit wbPhysicalUnit);

    /**
     * 查询农村单元
     *
     * @param wbCountyUnit wbCountyUnit
     * @return wbCountyUnit集合
     */
    List<WbCountyUnit> selectWbCountyUnit(WbCountyUnit wbCountyUnit);

    /**
     * 查询
     *
     * @param id id
     * @return WbPhysicalUnit
     */
    WbPhysicalUnit selectByPrimaryKey(@Param("id") Long id);

    /**
     * 更新
     *
     * @param record record
     * @return 更新结果
     */
    int updateByPrimaryKeySelective(WbPhysicalUnit record);

    /**
     * 删除
     *
     * @param id id
     * @return 删除结果
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 根据id查询子节点
     *
     * @param parentId parentId
     * @return 子节点列表
     */
    List<WbPhysicalUnit> selectChildrenByParentId(Long parentId);

    /**
     * 导入单元数据
     *
     * @param physicalUnitImportTemplateList 单元数据列表
     * @return 结果
     */
    String importWbPhysicalUnit(List<PhysicalUnitImportTemplate> physicalUnitImportTemplateList);

    /**
     * 检测单元是否存在
     *
     * @param wbPhysicalUnit wbPhysicalUnit
     * @return 是否存在
     */
    boolean checkWbPhysicalUnitExisted(WbPhysicalUnit wbPhysicalUnit);
}
